package com.equipment;

import com.util.EncodingUtil;

/**
 * 发送搜索OBU指令
 * @version 1.18
 * @author 刘亚东
 *
 */
public class SearchOBURequest {
	//55AA03004BDFB30003FFFFFF2200071AB1B1BEA9B1B1BEA9001211010606010001112012080120200101211610110101020304050607081999010120991231BEA94A4C3935323700000000000400FFFFFF09
	private String STX = "55AA"; // 帧开始标志
	private String RSCTL = "00"; // 串口帧序列号
	private String Length = ""; // 长度
	private String code = "FD"; // 代码
	private String type = ""; // (1字节)0表示预读卡信息，钱包信息等；1表示返回OBU系统信息和OBU复位信息等；对于老版本标签（00和10版本）如果不支持预读卡信息的需要再次发送AC指令读取卡信息；
	private String broadening = "A3"; // 扩展代码
	private String BCC = ""; // 异或校验值

	public String command(String ype) {
		this.type = EncodingUtil.desToHex(Integer.parseInt(ype), 2);
		// -----------------------------------------------------------------------------
		Length = EncodingUtil.desToHex((broadening + type).length() / 2, 4);
		// DATA由代码+扩展子代码+目录编号+随机数长度按顺序拼接组成
		String DATA = RSCTL + Length + code + broadening + type;
		// 异或校验从RSCTL到DATA所有字节的异或值
		BCC = EncodingUtil.yihuo(EncodingUtil.change(DATA));
		String retn = STX + DATA + BCC; // 拼接完整的请求
		return retn;

	}

}
